home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d3 / rettig.arc / TRSOURCE.EXE / _TR_PEEK.ASM < prev    next >
Assembly Source File  |  1990-10-22  |  2KB  |  58 lines

  1. ; _TR_PEEK.ASM
  2. ;
  3. ; by Ralph Davis
  4. ; modified by Leonard Zerman
  5. ;
  6. ; Placed in the public domain by Tom Rettig Associates, 10/22/1990.
  7. ;
  8.          PUBLIC   _TR_PEEK_PARMS
  9.  
  10.          EXTRN    __TR_HTOI:FAR
  11.  
  12.          INCLUDE  EXTENDA.MAC
  13.  
  14. ;*****************************************************
  15. _TR_PEEK_TEXT SEGMENT  BYTE PUBLIC 'CODE'
  16.          ASSUME   CS:_TR_PEEK_TEXT
  17. ;-----------------------------------------------------
  18. _TR_PEEK_PARMS PROC FAR
  19. ; processes parameters passed to PEEK() functions
  20. ;
  21. ; RETURNS:   Segment in SI, offset in AX
  22. ;-------------------
  23.          PUSH     BX
  24.          GET_PCOUNT              ; call _parinfo(0) to
  25.                                  ; make sure parameter was passed
  26.          CMP      AX,2           ; do we have two parameters?
  27.          JL       PGP_RET        ; no, go to error routine
  28.          GET_CHAR 1              ; PCOUNT OK, so get parameters
  29.          PUSH     DX             ; now pass address to _TR_HTOI
  30.          PUSH     AX
  31.          CALL     __TR_HTOI       ; returns integer in AX
  32.          ADD      SP,4
  33.          PUSH     AX             ; first parameter is segment address
  34.                                  ; save it
  35.          GET_PTYPE 2             ; call _parinfo() to see if offset
  36.                                  ; is hex string or number
  37.          AND      AX,CHARACTER   ; is it hex string?
  38.          JNZ      PGP_2          ; yes, use _parc()
  39.          GET_INT  2              ; no, get offset as int
  40.          JMP      SHORT PGP_3
  41. PGP_2:
  42.          GET_CHAR 2              ; Get parm 2 as char *
  43.          PUSH     DX             ; Pass it to _tr_htoi()
  44.          PUSH     AX
  45.          CALL     __TR_HTOI       ; returns offset as integer in AX
  46.          ADD      SP,4
  47. PGP_3:
  48.          POP      SI             ; retrieve requested segment address
  49.          POP      BX
  50. PGP_RET: RET      
  51.  
  52. _TR_PEEK_PARMS ENDP
  53. ;------------------------------------------------
  54. _TR_PEEK_TEXT    ENDS
  55. ;************************************************
  56.          END
  57.